﻿using System;

namespace Shell.Library.Services
{
    /// <summary>
    /// Service Provider
    /// </summary>
    public interface IServiceBase
    {
        /// <summary>
        /// Gets the service object of the specified type.
        /// </summary>
        /// <param name="serviceType">An object that specifies the type of service object to get.</param>
        /// <returns>A service object of type <paramref name="serviceType"/>.-or- null if there is no service object of type <paramref name="serviceType"/>.</returns>
        object GetService(Type serviceType);

        /// <summary>
        /// Gets the service object of the specified type.
        /// </summary>
        /// <typeparam name="T">Type of the service.</typeparam>
        /// <returns>The service instance.</returns>
        T GetService<T>();
    }
}